, , , , , ,

Traduction originale par Thomas

Mise à jour par SunWukong, Rorist

Installer un serveur d'applications Zope sur Ubuntu

À propos

Actuellement, il existe deux "branches" majeures de Zope : la 2.9.x et la 3.x. L'idée étant qu'à la base, Zope 3 devait être une réécriture de zéro de Zope 2 : nouveaux concepts, abandon de certaines lourdeurs de Zope 2, volonté d'être plus "pythonic", etc.

Le projet Zope 3 a commencé il y a plusieurs années déjà et est arrivé à maturité il y a un peu plus d'un an, mais sans compatibilité avec Zope 2. Or Zope 2 possède beaucoup d'extensions : CMS (Plone, CPS), produits de forum, wiki, etc. Le développement de Zope 2 se poursuit donc et la technologie de Zope 3 est petit à petit rétro-intégrée dans Zope 2. La version 2.10.0-final est sortie le 3 octobre 2006.

Bref aujourd'hui, AMHA, il faut plus voir Zope 3 comme une sorte de laboratoire d'idées de la communauté Zope. Et Zope 2 la version de référence dans laquelle est intégré petit à petit le code de Zope 3 pour une migration en douceur de toutes les extensions déjà développées pour Zope 2.

Préambule

La présente procédure permet d'installer le serveur d'application Zope sur les distributions Edgy Eft, Feisty Fawn et Gutsy Gibbon. Peut-être fonctionne-t'elle aussi sous Dapper (merci de faire un retour d'expérience ici).

Pour les versions antérieures d'Ubuntu, la procédure est légèrement différente comme vous le constaterez en suivant les consignes sur zope_legacy

Installation

Assurez-vous d'avoir pris en compte les dépôts "Universe" dans /etc/apt/sources.list. Pour notre grand confort, les MotU nous ont préparé un méta-paquet qui permettra d'installer tout le nécessaire à l'aide d'un seul paquet et du jeu des inter-dépendances entre les paquets.

L'outil graphique Synaptic :

Lancer Synaptic (s'il est installé) et sélectionner le paquet zope et python-zodb

La ligne de commande :

$ sudo apt-get install zope python-zodb

À la fin de l'installation en mode console, on peut voir un message apparaitre :

Zope2.9: no instances found.

Création d'une instance Zope

Exécuter la commande suivante pour créer une instance de Zope.

La commande vous demandera le nom d'un répertoire pour y stocker l'instance de Zope (constituée des ces données, fichiers de configuration, journaux, etc.). Personnellement, je l'ai placée dans /var/local/zope. Si d'aventure un lecteur propose un endroit plus judicieux…

La commande réclame aussi un couple d'authentification utilisateur/motdepasse.

$ cd /usr/lib/zope2.9/bin
$ sudo python mkzopeinstance.py
Please choose a directory in which you'd like to install
Zope "instance home" files such as database files, configuration
files, etc.

Directory: /var/local/zope/
Please choose a username and password for the initial user.
These will be the credentials you use to initially manage
your new Zope instance.

Username: Dupont
Password: ****************
Verify password: ****************

Notre instance est alors créée comme on peut le constater :

$ cd /var/local/zope/
$ ls -l
total 40
drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 bin
drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 etc
drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 Extensions
drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 import
-rw-r--r-- 1 root staff   42 2007-02-26 16:38 inituser
drwxr-xr-x 3 zope zope  4096 2007-02-26 16:38 lib
drwxr-xr-x 2 zope zope  4096 2007-02-26 17:01 log
drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 Products
-rw-r--r-- 1 zope zope   481 2007-02-26 16:38 README.txt
drwxr-xr-x 2 zope zope  4096 2007-02-26 17:01 var

Démarrons notre instance Zope

Gutsy: Afin que zope utilise python 2.4, il faut le lui spécifier en editant les fichiers /var/local/zope/bin/runzope et /var/local/zope/bin/zopectl à la ligne 2 comme ceci PYTHON="/usr/bin/python2.4"

Nous ajoutons un lien de notre instance dans le dossier instance de zope pour le script de démarrage

$ sudo ln -s /var/local/zope/ /var/lib/zope2.10/instance/.

Nous pouvons lancer Zope

$ sudo /etc/init.d/zope2.10 start

Zope is alive !

Comme on peut le voir dans un navigateur, notre serveur Zope est opérationnel : http://localhost:9673/ Comme on peut le remarquer dans l'URL ci-dessus, le port par défaut est 9673 (Pensez à ajuster vos firewall et autres routeurs si vous travaillez sur un serveur distant).

Administration du serveur

À l'aide des identifiants d'authentification indiqués à la création de l'instance, on peut administrer le serveur à partir de l'URL suivantes :

D'autres commandes sont disponibles dans /var/local/zope/bin.

Des journaux sont disponibles dans /var/local/zope/log.

Apache et Zope 2

Nous considérons Apache 2.x installé et fonctionnel, ainsi que Zope 2.

$ a2enmod proxy
$ a2enmod proxy_http
$ a2enmod rewrite
UseCanonicalName On # permet d'eviter de taper les / finaux
RewriteEngine On
RewriteRule ^/adressederedirection(.*) http://localhost:9673/VirtualHostBase/http/votreurl.com:80/VirtualHostRoot/_vh_adressederedirection/$1 [L,P]

RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3

Cette règle peut paraître abject, mais tous ces paramètres sont utiles à Zope pour bien nous servir. Voici quelques détails:

Exemple: http://localhost:8080/VirtualHostBase/http/monsite.com:80/VirtualHostRoot/_vh_zope/$1

Si vous passez par SSL et https vous devez p.ex. le spécifier comme ceci: https/votreurl.com:443

ProxyRequests Off
ProxyVia On
<Proxy *>
        Order deny,allow
        Allow from votreurl.com
        Allow from localhost
</Proxy>
$ /etc/init.d/apache2 force-reload

Apprendre Zope

Voici un lien vers la documentation de Zope

Un tutoriel est disponible dans l'instance nouvellement créée et permet de découvrir quelques fonctionnalités de Zope dans son interface d'administration. Pour le débutant, c'est un excellent point de départ, chaudement recommandé !

Liens

Le site du projet Zope

Zope 2.9 Documentation [EN]

Le portail Zope francophone

Le site de Plone